<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // 同步 => 按顺序,按步骤执行 => 只有前面的代码执行完毕,后面的代码才可以执行
    // 异步 => 同时执行,也叫并发 (事件 计时器/延时器 ajax Promise)

    // 案例
    // 吃饭(10)  洗衣服(30)   玩游戏(60)  

    // 同步
    // 先吃饭 在洗衣服 最后玩游戏   =>  100

    // 异步
    // 先吃饭
    // 洗衣服   =>  60
    // 玩游戏 

    // // 同步 
    // for (var i = 0; i < 6; i++) {
    //     console.log(i); // 0 1 2 3 4 5
    // }
    // console.log("循环结束:",i);


    // 异步
    // console.log(1111);

    // // 启动延时器 -> 等待1s后执行  
    // setTimeout(()=>{
    //     console.log(2222);
    // },5000);

    // console.log(3333);

    // 循环6次 => 同时启动6个延时器(1s) => 循环接收继续向后执行(与此同时延时器也在计时)
    // console.time("a");
    // console.log("循环开始");
    // for (var i = 0; i < 6; i++) {
    //     setTimeout(()=>{
    //         console.log(i);
    //         console.timeLog("a");
    //     },1000);
    // }
    // console.log("循环结束:",i); // 6
    // console.timeEnd("a");


    for (let i = 0; i < 6; i++) {
        setTimeout(()=>{
            console.log(i);
        },1000);
    }


    // 但是 JS执行线程(执行JS代码的线程) 是单线程 => JS如何解决的异步

    

</script>

</html>